package yl.hs.bmipfull.daos.material;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import yl.hs.bmipfull.daos.BaseDao;
import yl.hs.bmipfull.pojo.laboratory.ProductCateEntity;
import yl.hs.bmipfull.pojo.material.RawMaterialCateEntity;

import java.util.List;
import java.util.Map;

/**
 * 作用:  原材分类信息持久层接口<br/>
 * 创建时间: 2021年05月17日 08时49分39秒 <br/>
 *
 * @author 张凯
 */
@Repository
public interface IRawMaterialCateDao extends BaseDao<RawMaterialCateEntity> {

    /**
     * 根据查询条件查询所有原材分类信息信息
     *
     * @param map 查询条件
     * @return 原材分类信息-List<{@link RawMaterialCateEntity}>
     */
    List<RawMaterialCateEntity> queryList(@Param("map") Map<String, Object> map,@Param("filters") List<Map<String,Object>> filters);

    /**
     * 查询所有原材分类信息信息
     *
     * @return 原材分类信息-List<{@link RawMaterialCateEntity}>
     */
    List<RawMaterialCateEntity> querySelect();

    List<RawMaterialCateEntity> findList(String productSN,List<String> unitSNArray);

    /**
     * 根据原材分类信息编号修改状态
     *
     * @param snArray 原材分类信息编号数组
     * @param state
     * @return
     */
    Integer changeStateBySn(String[] snArray, short state);
    /**
     * 根据原材分类名称查询原材分类信息
     * @param cateName 原材分类名称
     * @return
     */
    RawMaterialCateEntity queryByName(String cateName,String sn);

    List<RawMaterialCateEntity>  queryByProudctCateSN(String productCateSn);

    /**
     * 获取所有原材种类
     * @return
     */
    @Select("SELECT * FROM raw_material_cate where state>=0")
    List<RawMaterialCateEntity> getAll();
}